package cn.b.sky.mes.andon.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.andon.model.AndonType;
import cn.b.sky.mes.andon.model.AndonTypeAttribute;
import cn.b.sky.mes.andon.model.condition.AndonTypeCondition;

public interface AndonTypeDao {

  /**
   * 
   * <strong>Title : selectandonTypeListByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询物流ANDON类别<br> 
   * <strong>Create on : 2016-8-18 下午3:16:58<br></strong>
   * <p>
   * @param condition
   * @return
   * List<AndonType>
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonType> selectandonTypeListByCondition(AndonTypeCondition condition);

  /**
   * 
   * <strong>Title : selectandonTypeListCountByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询物流ANDON类别记录<br> 
   * <strong>Create on : 2016-8-18 下午3:17:05<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectandonTypeListCountByCondition(AndonTypeCondition condition);

  /**
   * 
   * <strong>Title : getAllAndonTypes<br></strong>
   * <strong>Description : </strong>查询所有物流类型，供查询界面使用<br> 
   * <strong>Create on : 2016-8-19 上午10:11:35<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<AndonType>
   * @throws 
   * @author ZhiPeng.Tong<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonType> selectAllAndonTypes(String siteCode);
  /**
   * 
   * <strong>Title : getAndonType<br></strong>
   * <strong>Description : </strong>根据条件查询物流ANDON类别信息<br> 
   * <strong>Create on : 2016-8-19 上午10:24:50<br></strong>
   * <p>
   * @param andonTypeCode
   * @return
   * AndonType
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  AndonType getAndonType(@Param("siteCode")String siteCode,@Param("andonTypeCode")String andonTypeCode);

  /**
   * 
   * <strong>Title : insertAndonType<br></strong>
   * <strong>Description : </strong>添加根物流ANDON类别信息<br> 
   * <strong>Create on : 2016-8-19 上午10:38:50<br></strong>
   * <p>
   * @param andonType
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertAndonType(AndonType andonType);

  /**
   * 
   * <strong>Title : updateAndonType<br></strong>
   * <strong>Description : </strong>修改根物流ANDON类别信息<br> 
   * <strong>Create on : 2016-8-19 上午10:38:42<br></strong>
   * <p>
   * @param andonType
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateAndonType(AndonType andonType);
  
  /**
   * 
   * <strong>Title : deleteAndonType<br></strong>
   * <strong>Description : </strong>删除根物流ANDON类别信息<br> 
   * <strong>Create on : 2016-8-19 上午10:56:34<br></strong>
   * <p>
   * @param siteCode
   * @param andonTypeCode
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteAndonType(@Param("siteCode")String siteCode,@Param("andonTypeCode")String andonTypeCode);
  
  /**
   * 
   * <strong>Title : updateAndonTypeStatus<br></strong>
   * <strong>Description : </strong>修改物流ANDON类别状态<br> 
   * <strong>Create on : 2016-8-19 上午11:01:40<br></strong>
   * <p>
   * @param andonType
   * void
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateAndonTypeStatus(AndonType andonType);

  /**
   * 
   * <strong>Title : getAndonAccountListBySiteCode<br></strong>
   * <strong>Description : </strong>获取工厂状态下安灯类型<<br> 
   * <strong>Create on : 2016-8-26 上午9:12:05<br></strong>
   * <p>
   * @param siteCode
   * @param lockFlag
   * @return
   * List<AndonAccount>
   * @throws 
   * @author JinQuan.Fu<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonType> getAndonAccountListBySiteCode(@Param("siteCode")String siteCode, @Param("lockFlag")Integer lockFlag);
  
  /**
   * 
   * <strong>Title : selectAndonTypeAttribute<br></strong>
   * <strong>Description : </strong>查询安灯类型对应的属性<br> 
   * <strong>Create on : 2016年10月18日 下午4:54:57<br></strong>
   * <p>
   * @param siteCode
   * @param andonTypeCode
   * @return
   * List<AndonTypeAttribute>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<AndonTypeAttribute> selectAndonTypeAttribute(@Param("siteCode")String siteCode,@Param("andonTypeCode")String andonTypeCode);
  
  /**
   * 
   * <strong>Title : insertAndonTypeAttribute<br></strong>
   * <strong>Description : </strong>新增ANDON类型属性<br> 
   * <strong>Create on : 2016年10月18日 下午4:55:55<br></strong>
   * <p>
   * @param andonTypeAttribute
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertAndonTypeAttribute(AndonTypeAttribute andonTypeAttribute);
  
  /**
   * 
   * <strong>Title : deleteAndonTypeAttribute<br></strong>
   * <strong>Description : </strong>删除ANDON类型属性<br> 
   * <strong>Create on : 2016年10月18日 下午4:56:33<br></strong>
   * <p>
   * @param siteCode
   * @param andonTypeCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteAndonTypeAttribute(@Param("siteCode")String siteCode,@Param("andonTypeCode")String andonTypeCode);
/**
 * 
 * <strong>Title : selectEnableAndonTypes<br></strong>
 * <strong>Description : </strong>查询没有禁用的安灯类型<br> 
 * <strong>Create on : 2016-11-17 下午1:16:15<br></strong>
 * <p>
 * @param siteCode
 * @return
 * List<AndonType>
 * @throws 
 * @author ZhiPeng.Tong<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
List<AndonType> selectEnableAndonTypes(String siteCode);

}
